home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 4: Demo 1 / almathera_demo1.bin / sourcecode / dexion / demo lines 1.s < prev    next >
Text File  |  1995-03-17  |  3KB  |  219 lines

  1. ; the demo lines
  2. ; af soren gronbech
  3. ;
  4. org  $7f000
  5. load $7f000
  6. scr=$7a000
  7. struc=$7d000
  8. rastport=struc+100
  9. ;
  10. setupsystem:
  11. bsr getgfx
  12. bsr cleanitdown
  13. ;
  14. move.w #8000-1,d0
  15. move.l #scr,a0
  16. slet:
  17. move.b #0,(a0)+
  18. dbra d0,slet
  19. move.l #scr,a0
  20. move.l a0,struc+8
  21. move.l struc,a0
  22. moveq #1,d0
  23. move.l #320,d1
  24. move.l #200,d2
  25. move.l gfxbase,a6
  26. jsr -390(a6)
  27. move.l #rastport,a1
  28. jsr -198(a6)
  29. move.l struc,rastport+4
  30. move.l #copper0,newcop
  31. bsr changecop
  32. ; - DEMO -
  33. move=-240
  34. draw=-246
  35. setapen=-342
  36. move.l #rastport,a1
  37. move.w #2198,count
  38. mainloop:
  39. move.w #5000,d0
  40. ause:
  41. dbra d0,ause
  42. clr.l d0
  43. jsr setapen(a6)
  44. clr.l d0
  45. clr.l d1
  46. move.w x0+38,d0
  47. move.w y0+38,d1
  48. jsr move(a6)
  49. clr.l d0
  50. clr.l d1
  51. move.w x1+38,d0
  52. move.w y1+38,d1
  53. jsr draw(a6)
  54. jsr copycor
  55. move.l #1,d0
  56. jsr setapen(a6)
  57. jsr calcnyline
  58. clr.l d0
  59. clr.l d1
  60. move.w x0,d0
  61. move.w y0,d1
  62. jsr move(a6)
  63. clr.l d0
  64. clr.l d1
  65. move.w x1,d0
  66. move.w y1,d1
  67. jsr draw(a6)
  68. btst #6,$bfe001
  69. bne mainloop
  70. jmp $fc0000
  71. ; - cor -
  72. x0: blk.w 20,0
  73. y0: blk.w 20,0
  74. x1: dc.w 310
  75. blk.w 19,0
  76. y1: dc.w 0
  77. blk.w 19,0
  78. count: dc.w 0
  79. copycor:
  80. move.l #x0,a0
  81. move.w #36,d0
  82. qryk:
  83. move.w 000(a0,d0.w),002(a0,d0.w)
  84. move.w 040(a0,d0.w),042(a0,d0.w)
  85. move.w 080(a0,d0.w),082(a0,d0.w)
  86. move.w 120(a0,d0.w),122(a0,d0.w)
  87. sub.w #2,d0
  88. cmp.w #-2,d0
  89. bne qryk
  90. rts
  91. ;
  92. x0r: dc.b 0
  93. y0r: dc.b 0
  94. x1r: dc.b 0
  95. y1r: dc.b 0
  96. ;
  97. speed=4
  98. speed2: dc.w 0
  99. ;
  100. calcnyline:
  101. move.w #speed,d0
  102. asr.w #1,d0
  103. n0:
  104. tst.b x0r
  105. beq q0
  106. sub.w #speed,x0
  107. bra n1
  108. q0:
  109. add.w #speed,x0
  110. n1:
  111. tst.b y0r
  112. beq q1
  113. sub.w #speed,y0
  114. bra n2
  115. q1:
  116. add.w #speed,y0
  117. n2:
  118. tst.b x1r
  119. beq q2
  120. sub.w d0,x1
  121. bra n3
  122. q2:
  123. add.w d0,x1
  124. n3:
  125. tst.b y1r
  126. beq q3
  127. sub.w d0,y1
  128. bra n4
  129. q3:
  130. add.w d0,y1
  131. n4: 
  132. btst #15,x0
  133. beq ok0
  134. add.w #speed,x0
  135. bchg #0,x0r
  136. bra n5
  137. ok0:
  138. cmp.w #320,x0
  139. bcs n5
  140. sub.w #speed,x0
  141. bchg #0,x0r
  142. n5:
  143. btst #15,x1
  144. beq ok1
  145. add.w #speed,x1
  146. bchg #0,x1r
  147. bra n6
  148. ok1:
  149. cmp.w #320,x1
  150. bcs n6
  151. sub.w #speed,x1
  152. bchg #0,x1r
  153. n6:
  154. btst #15,y0
  155. beq ok2
  156. add.w #speed,y0
  157. bchg #0,y0r
  158. bra n7
  159. ok2:
  160. cmp.w #200,y0
  161. bcs n7
  162. sub.w #speed,y0
  163. bchg #0,y0r
  164. n7:
  165. btst #15,y1
  166. beq ok3
  167. add.w #speed,y1
  168. bchg #0,y1r
  169. bra n8
  170. ok3:
  171. cmp.w #200,y1
  172. bcs n8
  173. sub.w #speed,y1
  174. bchg #0,y1r
  175. n8: rts
  176.  
  177. ; - coppers -
  178.  
  179. copper0:
  180. dc.w $0100,$1200
  181. dc.w $008e,$2c81
  182. dc.w $0090,$f4c1
  183. dc.w $0092,$38
  184. dc.w $0094,$d0
  185. dc.w $0108,$0000
  186. dc.w $010a,$0000
  187. dc.w $00e0,$0007
  188. dc.w $00e2,$a000
  189. dc.w $0180,$0000
  190. dc.w $0182,$0f33
  191. dc.w $ffff,$fffe
  192. ; - gfx -
  193. gfxbase: dc.l 0
  194. gfxname: dc.b "graphics.library",0,0
  195.  
  196. getgfx:
  197. move.l 4,a6
  198. move.l #gfxname,a1
  199. jsr -408(a6)
  200. move.l d0,gfxbase
  201. rts
  202.  
  203. ; - change copper list -
  204.  
  205. newcop: dc.l 0
  206.  
  207. changecop:
  208. move.l gfxbase,a0
  209. move.l newcop,50(a0)
  210. rts
  211.  
  212. forbid=-132
  213. oldcopper: dc.l 0
  214. cleanitdown:
  215. move.l 4,a6
  216. jsr -132(a6)
  217. rts
  218.  
  219.